// 重中之重
// 数据类型转换 【字符串   数字   布尔】
    // 扪心自问: 数据类型有什么？ 
            // 基本  和  引用两种
            // 基本: undefined 未定义   number 数值  string 字符串   boolean 布尔   null 空


// 1 其他类型转  字符串 
        // val.toString()  转undefined 和 null 报错 -> null和undefined没有toString()方法 
        //                 其他都 将 + "" 返回
        // String(val)  强制转换  任意内容都将 + "" 返回
        // + ""   字符串拼接  任意内容都将 + "" 返回

    // var str1 = "你好" , str2 = "15" , str3 = "abc" , str4 = "?+=" ;
    // console.log( str1.toString() , str2.toString() , str3.toString() , str4.toString() )
    // console.log( String(str1) , String(str2) , String(str3) , String(str4) )

    // var num1 = 2024 , num2 = 9.99 , num3 = NaN;
    // console.log( num1.toString() , num2.toString() , num3.toString() )
    // console.log( String(num1) , String(num2) , String(num3) )

    // var bol1 = true , bol2 = false ;
    // console.log( bol1.toString() , bol2.toString()  )
    // console.log( String(bol1) , String(bol2)  )

    // var und = undefined ;
    // console.log( und.toString())   报错 
    // console.log( String(und) )


    // var n = null;
    // console.log( n.toString())  // 报错 
    // console.log( String(n) )


    // 2 其他类型转布尔  Boolean(值)
        // false : false  ''  NaN  0  undefined  null
    // var str1 = "你好123abc" , str2 = "" ;
    // console.log( Boolean(str1) , Boolean(str2) )
    // var num1 = 2024 , num2 = 9.99 , num3 = NaN , num4 = 0;
    // console.log( Boolean(num1) , Boolean(num2) , Boolean(num3) , Boolean(num4) )
    // var bol1 = true , bol2 = false ;
    // console.log( Boolean(bol1) , Boolean(bol2) )
    // var und = undefined ;
    // console.log( Boolean(und) )
    // var n = null;
    // console.log( Boolean(n) )


    // 其他类型转数值
        // Number()  强转  是数字  或  NaN
                // 特殊: '' , false , null -> 0
                // true -> 1
        // parseInt()  取整  遇第一个非数字止  将能返回的的返回  否则NaN
        // parseFloat() 取浮点数  遇第一个非小数点止  将能返回的返回  否则NaN

        // var str1 = "你好123abc" , str2 = "" , str3 = "123.56.45abc";
        // console.log( Number(str1) , Number(str2) , Number(str3) )
        // console.log( parseInt(str1) , parseInt(str2) , parseInt(str3))
        // console.log( parseFloat(str1) , parseFloat(str2) , parseFloat(str3))

        // var num1 = 2024 , num2 = 9.99 , num3 = NaN , num4 = 0;
        // console.log( Number(num1) , Number(num2) , Number(num3) , Number(num4) )
        // console.log( parseInt(num1) , parseInt(num2) , parseInt(num3) , parseInt(num4) )
        // console.log( parseFloat(num1) , parseFloat(num2) , parseFloat(num3) , parseFloat(num4) )
        
        // var bol1 = true , bol2 = false ;
        // console.log( Number(bol1) , Number(bol2) )
        // console.log( parseInt(bol1) , parseInt(bol2) )
        // console.log( parseFloat(bol1) , parseFloat(bol2) )


        // var und = undefined ;
        // console.log( Number(und) )  
        // console.log( parseInt(und) ) 
        // console.log( parseFloat(und) )

        // var n = null;
        // console.log( Number(n) )
        // console.log( parseInt(n) )
        // console.log( parseFloat(n) )
    
    


